﻿//#define _CRT_SECURE_NO_WARNINGS 1
//#include<stdio.h>
//#include<stdlib.h>
//
// 面试题 02.02. 返回倒数第 k 个节点
//struct ListNode {
//	int val;
//	struct ListNode* next;
//};
//
//struct ListNode* BuyNewNode(int x)
//{
//	struct ListNode* newnode = (struct ListNode*)malloc(sizeof(struct ListNode));
//	if (newnode == NULL)
//	{
//		perror("malloc fail");
//		exit(-1);
//	}
//
//	newnode->val = x;
//	newnode->next = NULL;
//
//	return newnode;
//}
//
//struct ListNode* kthToLast(struct ListNode* head, int k) {
//	struct ListNode* pcur = head;
//	int count = 0;
//	while (pcur)
//	{
//		count++;
//		pcur = pcur->next;
//	}
//	//printf("count:%d\n", count);
//
//	count = count - k;
//	//printf("count:%d\n", count);
//
//	pcur = head;
//	while (count--)
//	{
//		pcur = pcur->next;
//	}
//	//printf("p->%d", pcur->val);
//
//	return pcur;
//}
//
//
//int main()
//{
//	struct ListNode* node1 = BuyNewNode(1);
//	struct ListNode* node2 = BuyNewNode(2);
//	struct ListNode* node3 = BuyNewNode(3);
//	struct ListNode* node4 = BuyNewNode(4);
//	struct ListNode* node5 = BuyNewNode(5);
//	//struct ListNode* node6 = BuyNewNode(6);
//
//	node1->next = node2;
//	node2->next = node3;
//	node3->next = node4;
//	node4->next = node5;
//	node5->next = NULL;
//
//	struct ListNode* p1=kthToLast(node1, 2);
//	printf("%d", p1->val);
//	return 0;
//}

////二分查找
//int check(int a, int target)
//{
//    if (a < target)
//        return 1;
//    return 0;
//
//}
//int search(int* nums, int numsSize, int target) {
//    int l = 0, r = numsSize - 1;
//    while (l < r)
//    {
//        int mid = (l + r) / 2;
//        if (check(nums[mid], target))
//            l = mid + 1;
//        else
//            r = mid;
//    }
//    if (nums[r] != target)
//        return -1;
//    return r;
//
//}

////搜索插入位置
//int check(int a, int target)
//{
//    if (a < target)
//        return 1;
//    return 0;
//
//}
//int searchInsert(int* nums, int numsSize, int target) {
//    int l = 0, r = numsSize - 1;
//    while (l < r)
//    {
//        int mid = (l + r) / 2;
//        if (check(nums[mid], target))
//            l = mid + 1;
//        else
//            r = mid;
//    }
//    if (target > nums[r])
//        return r + 1;
//    return r;
//
//}

